﻿using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using ArgusLight.ArgusMath;

namespace ArgusLight.Fractals2D.ComplexFractalColoring
{
	public class PeriodicColoringData : ColoringData
	{
		public Interval ArgumentInterval;
		private object _lock;

		public PeriodicColoringData(int Width, int Height)
			: base(Width, Height)
		{
			this.ArgumentInterval = new Interval(double.MaxValue, double.MinValue);
			this._lock = new object();
		}

		public double SynchedArgMin
		{
			get
			{
				lock (this._lock)
				{
					return this.ArgumentInterval.Min;
				}
			}
			set
			{
				lock (this._lock)
				{
					this.ArgumentInterval.Min = value;
				}
			}
		}
		public double SynchedArgMax
		{
			get
			{
				lock (this._lock)
				{
					return this.ArgumentInterval.Max;
				}
			}
			set
			{
				lock (this._lock)
				{
					this.ArgumentInterval.Max = value;
				}
			}
		}
	}
}
